The Infiniband® network includes nodes that communicate through a channel-based switched fabric (Infiniband® is a registered trademark of Infiniband Trade Association, located in Beaverton, Oreg.). For example, the nodes may be a host, an input/output subsystem, or a router which connects to another network. The switched fabric is made of a collection of switches, routers, and/OR links that connect a set of channel adapters. The channel adapters form an interface between the switched fabric and the nodes. The channel adapter of the host is referred to as a host channel adapter. The channel adapter of an I/O subsystem is referred to as a target channel adapter.
In Infiniband®, data packets are sent and received using queues. The data packets are stored in entries. Completion queues are used to buffer data packets produced by the host until the host channel adapter can send them. Receive queues are used to buffer data packets received by the host channel adapter until the host can consume them. Information about a queue is stored in a data structure called a queue descriptor. The host channel adapter accesses entries in queues based on the information stored in the queue descriptors.